Excel 数据有效性-忽略空值
文章目录
今天有同事找我说是Excel里面遇到一个妖怪问题,对一个格子做了数据有效性,但是还是什么值都能输入,公式是这样的:
Min [if(isnumber(B1),A1+B1,A1)] Max [200]
也就是检测B1格子里面是不是填了数字如果填了,最小值就是A1+B1,如果B1不是数值的话,只用A1作为最小值,最大值定义为200
然后出了个怪问题,测试的时候格子里面随便什么都能填。
然后我看了一下,其实这个问题挺简单的,只是有个概念要搞清楚。
首先是解决方案,其实只要把忽略空值(ignore blank)的勾去掉就好了。
为什么呢?
这个忽略空值,微软的定义是这样的:
若要指定希望如何处理空值 (null),请选中或清除“忽略空值”复选框。
注意 如果允许值基于具有已定义名称的单元格区域,并且该区域中的任意位置存在空单元格,则选中“忽略空值”复选框将允许在已验证单元格中输入任意值。同样,验证公式所引用的任何单元格也是如此:如果引用的单元格为空,则选中“忽略空值”复选框将允许在已验证单元格中输入任意值。
一旦选中了忽略空值,由于B1格子里面是空的, 所以整个数据有效性的验证就被忽略了,包括上限200这一条。
然后取消了忽略空值之后,就正常了,由于B1不是数字所以最小值就参考A1,同时最大值参考200.
超过数据范围就会报警
在数据范围内就是正常的
例子的文件
Excel源文件

